from .module.baseType import ConstType, PrintStr, WebPrintStr, Example, ClickTrigger
from .module.timerType import IntervalModule
from .module.numberType import TestToNumber
from .ModelInterface import Model

__all__ = [ConstType, PrintStr, WebPrintStr, Example, ClickTrigger, IntervalModule, TestToNumber]
path2class = {mo().get_path(): mo for mo in __all__}


def by_path(path) -> type[Model]:
    return path2class[path]


def all() -> list[type[Model]]:
    return path2class.values()
